// 类型推断
let n = 100
// let n = 'str' Error

let yourName // any
yourName = 'hugo'
yourName = 12

// 关闭严格模式 "strict": false 
// function info(num1, num2){
//   return num1 + num2
// }

// 获取参数长度
// function myInfo(info: number | string): number{
//   // 这里会报错，因为访问联合类型的属性，它会检查所有类型都是否具有这个属性
//   if(info.length){

//   }
// }
let myNum: number = 100
console.log(myNum.toString().length)

// 类型断言
function myInfo(info: number | string): number{
  // 断言为 string，欺骗编译器不会报错
  if((info as string).length){
    return (info as string).length
  }else{
    return info.toString().length
  }
}
console.log(myInfo(100))
console.log(myInfo('this is string'))